package com.zwps.biz.dal.db.object;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zwps.biz.dal.constant.TableNameConstant;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.time.LocalDateTime;

@Getter
@Setter
@ToString
@TableName(TableNameConstant.SYS_LOG_API)
public class LogApiDO {

    @TableId(type = IdType.AUTO)
    private Integer id;

    private String requestId;
    
    /**
     * 日志类型
     */
    private Integer logType;

    /**
     * 操作类型
     */
    private Integer operateType;

    /**
     * 操作名称
     */
    private String operateName;

    /**
     * 操作用户id
     */
    private String operateUserId;

    /**
     * 操作用户名称
     */
    private String operateRealname;

    /**
     * 操作IP
     */
    private String operateIp;

    /**
     * 操作状态（0：成功，1：失败）
     */
    private Integer operateStatus;

    /**
     * 请求路径
     */
    private String requestUrl;

    /**
     * 请求参数
     */
    private String requestParam;

    /**
     * 请求Body
     */
    private String requestBody;

    /**
     * 请求方式
     */
    private String requestMethod;

    /**
     * 请求内容类型
     */
    private String requestContentType;

    /**
     * 异常详情
     */
    private String exceptionDetail;

    /**
     * 请求时间戳
     */
    private Long requestTime;

    /**
     * 响应内容类型
     */
    private String responseContentType;
    
    /**
     * 响应内容
     */
    private String responseBody;
    
    /**
     * 响应时间戳
     */
    private Long responseTime;

    /**
     * 耗时（毫秒）
     */
    private Long costTime;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    
    /**
     * http状态
     */
    private Integer httpStatus;
    
    /**
     * 调用外部请求（0：不是|1：是）
     */
    private Integer external;
}
